package com.aw.jsr303.ejemplo001;

import javax.validation.Valid;
import javax.validation.constraints.Future;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * User: gmc
 * Date: 30/06/2010
 */
@RucInfoChecker
public class ComprobanteDePago {
    @OnlyLetters
    private String codigoInterno;
    @NotNull
    private ComprobanteTipo tipo;
    private String ruc;
    @Valid
    @NotNull
    private Cliente cliente;
    private Date fechaDeEntrega;
    @Valid
    @Size(min=1, max=20)
    private List<Item> items = new ArrayList();

    public ComprobanteDePago() {
    }

    public ComprobanteTipo getTipo() {
        return tipo;
    }

    public void setTipo(ComprobanteTipo tipo) {
        this.tipo = tipo;
    }

    public Cliente getCliente() {
        return cliente;
    }

    public void setCliente(Cliente cliente) {
        this.cliente = cliente;
    }

    @Future
    public Date getFechaDeEntrega() {
        return fechaDeEntrega;
    }

    public void setFechaDeEntrega(Date fechaDeEntrega) {
        this.fechaDeEntrega = fechaDeEntrega;
    }

    public List<Item> getItems() {
        return items;
    }

    public void setItems(List<Item> items) {
        this.items = items;
    }

    public String getRuc() {
        return ruc;
    }

    public void setRuc(String ruc) {
        this.ruc = ruc;
    }

    public String getCodigoInterno() {
        return codigoInterno;
    }

    public void setCodigoInterno(String codigoInterno) {
        this.codigoInterno = codigoInterno;
    }
}
